package testPackage.testPackage;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;

import java.util.concurrent.TimeUnit;

/**
 * step by step 06 多浏览器或跨浏览器测试
 * 实现：通过参数化浏览器变量来进行Selenium中的跨浏览器测试。
 * 用@parameter批注将不同的浏览器值从.xml文件传递到测试脚本
 * 然后浏览器参数的值可用于实例化Selenium WebDriver的相应驱动程序类。
 * 由于所有的测试方法都需要使用浏览器值，所以最好在@BeforeTest方法
 * 中使用浏览器变量。
 */
public class Testng06 {
    WebDriver driver;
    String URL = "http://www.baidu.com";
    @Parameters("browser")
    @BeforeTest
    public void setBrowser(String browser){
        if(browser.equalsIgnoreCase("Edge")){
            System.setProperty("webdriver.edge.marionette","D:\\Enviroments\\geckodriver-v0.26.0-win64\\geckodriver.exe");
            driver = new EdgeDriver();
        }
        else if(browser.equalsIgnoreCase("Chrome")){
            System.setProperty("webdriver.chrome.driver","D:\\Enviroments\\geckodriver-v0.26.0-win64\\chromedriver.exe");
            driver = new ChromeDriver();
        }else{
            throw new IllegalArgumentException("Invalid browser value!");
        }
        driver.get(URL);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();
    }
}
